[qemu] Add switch to control whether acpi bridge is enabled.
authorchris@kneesaa.uk.xensource.com <chris@kneesaa.uk.xensource.com>
Fri, 4 Aug 2006 09:41:27 +0000 (10:41 +0100)
committerchris@kneesaa.uk.xensource.com <chris@kneesaa.uk.xensource.com>
Fri, 4 Aug 2006 09:41:27 +0000 (10:41 +0100)
Signed-off-by: Winston Wang <winston.l.wang@intel.com>
tools/ioemu/hw/pc.c
tools/ioemu/vl.c
tools/ioemu/vl.h
tools/python/xen/sv/CreateDomain.py
tools/python/xen/xend/image.py

index 3a7b021e0c2d17b5d11d97dbcb5991ad78c02181..d4e4b1b9ca365645436d0c1c6063d7640611fe6c 100644 (file)
@@ -871,7 +871,7 @@ static void pc_init1(uint64_t ram_size, int vga_ram_size, int boot_device,
     cmos_init(ram_size, boot_device, bs_table, timeoffset);
 
     /* using PIIX4 acpi model */
-    if (pci_enabled)
+    if (pci_enabled && acpi_enabled)
         pci_piix4_acpi_init(pci_bus);
 
     if (pci_enabled && usb_enabled) {
index 34ae60df0b62e1138d610bcbdb2a06cf7d91d1b0..b3ccf6b04a83433ab310c185e58b8a63bbfb94ed 100644 (file)
@@ -167,6 +167,8 @@ int xc_handle;
 
 time_t timeoffset = 0;
 
+int acpi_enabled = 0;
+
 char domain_name[1024] = { 'H','V', 'M', 'X', 'E', 'N', '-'};
 extern int domid;
 
@@ -4807,6 +4809,7 @@ void help(void)
           "-vnc display    start a VNC server on display\n"
            "-vncviewer      start a vncviewer process for this domain\n"
            "-timeoffset     time offset (in seconds) from local time\n"
+           "-acpi           disable or enable ACPI of HVM domain \n"
            "\n"
            "During emulation, the following keys are useful:\n"
            "ctrl-alt-f      toggle full screen\n"
@@ -4901,6 +4904,7 @@ enum {
     QEMU_OPTION_d,
     QEMU_OPTION_vcpus,
     QEMU_OPTION_timeoffset,
+    QEMU_OPTION_acpi,
 };
 
 typedef struct QEMUOption {
@@ -4983,6 +4987,7 @@ const QEMUOption qemu_options[] = {
     { "d", HAS_ARG, QEMU_OPTION_d },
     { "vcpus", 1, QEMU_OPTION_vcpus },
     { "timeoffset", HAS_ARG, QEMU_OPTION_timeoffset },
+    { "acpi", 0, QEMU_OPTION_acpi },
     { NULL },
 };
 
@@ -5710,6 +5715,9 @@ int main(int argc, char **argv)
             case QEMU_OPTION_timeoffset:
                 timeoffset = strtol(optarg, NULL, 0);
                 break;
+            case QEMU_OPTION_acpi:
+                acpi_enabled = 1;
+                break;
             }
         }
     }
index 517209fb795e12327d068c04ad1379c346ef4592..5eca5544636c91ab603218a14d838f03792a8a0c 100644 (file)
@@ -159,6 +159,7 @@ extern const char *keyboard_layout;
 extern int kqemu_allowed;
 extern int win2k_install_hack;
 extern int usb_enabled;
+extern int acpi_enabled;
 extern int smp_cpus;
 
 /* XXX: make it dynamic */
index 77a3483a443ce8578b0238b1f931e50861735de7..ee5e62eb4acdbb47fbf499747f044e0673d5a05a 100755 (executable)
@@ -180,6 +180,7 @@ class CreateFinish( Sheet ):
         vals.ssidref = -1
         vals.bootloader = None
         vals.usb = []
+        vals.acpi = []
         
         #setup vifs
         
index f3fa7d11c6ae64fa8eb233520d03a76c337de5a1..1adfa98ccc0fa1240821d91a45b4a747e0ba0a46 100644 (file)
@@ -251,7 +251,7 @@ class HVMImageHandler(ImageHandler):
     def parseDeviceModelArgs(self, imageConfig, deviceConfig):
         dmargs = [ 'boot', 'fda', 'fdb', 'soundhw',
                    'localtime', 'serial', 'stdvga', 'isa', 'vcpus',
-                  'usb', 'usbdevice']
+                  'acpi', 'usb', 'usbdevice']
         ret = []
         for a in dmargs:
             v = sxp.child_value(imageConfig, a)